package ufc.web.funcoes;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.Vector;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import ufc.web.conexaoBD.ConnectionFactory;
import ufc.web.objetos.Clientes;


public class ConsultaCliente implements Acao{

	public Clientes consulta(int id){
		Clientes myClinte = new Clientes();
		
		try{
			String consulta = "select * from usuario where id=?";
			Connection con = ConnectionFactory.getConnection();
			PreparedStatement ps = con.prepareStatement(consulta);
			
			ps.setInt(1, id);
			
			ResultSet res = ps.executeQuery(); 
			
			while(res.next()){
				
				
				myClinte.setNome(res.getString("nome"));
				myClinte.setBairro(res.getString("bairro"));
				myClinte.setCep(res.getString("cep"));
				myClinte.setCidade(res.getString("cidade"));
				myClinte.setComplemento(res.getString("complemento"));
				myClinte.setCpf(res.getString("cpf"));
				myClinte.setDataNasc(res.getString("dataNasc"));
				myClinte.setEmail(res.getString("email"));
				myClinte.setEstado(res.getString("estado"));
				myClinte.setId(res.getInt("id"));
				myClinte.setNumero(res.getInt("numero"));
				myClinte.setRua(res.getString("rua"));
				myClinte.setSexo(res.getString("sexo"));
				
				
			}
			
			con.close();
			ps.close();
			}catch(SQLException e){
				System.out.println(e.getMessage());
			}
			
			
			return myClinte;
	}
	
	
	public List<Clientes> consulta( ){
		List<Clientes> cliente = new Vector<Clientes>();
		
		try{
			String consulta = "select * from usuario";
			Connection con = ConnectionFactory.getConnection();
			PreparedStatement ps = con.prepareStatement(consulta);
			
			ResultSet res = ps.executeQuery(); 
			
			while(res.next()){
				Clientes myClinte = new Clientes();
				
				myClinte.setNome(res.getString("nome"));
				myClinte.setBairro(res.getString("bairro"));
				myClinte.setCep(res.getString("cep"));
				myClinte.setCidade(res.getString("cidade"));
				myClinte.setComplemento(res.getString("complemento"));
				myClinte.setCpf(res.getString("cpf"));
				myClinte.setDataNasc(res.getString("dataNasc"));
				myClinte.setEmail(res.getString("email"));
				myClinte.setEstado(res.getString("estado"));
				myClinte.setId(res.getInt("id"));
				myClinte.setNumero(res.getInt("numero"));
				myClinte.setRua(res.getString("rua"));
				myClinte.setSexo(res.getString("sexo"));
				
				cliente.add(myClinte);
			}
			
			con.close();
			ps.close();
			}catch(SQLException e){
				System.out.println(e.getMessage());
			}
			
			
			return cliente;
	}
	@Override
	public void executa(HttpServletRequest request, HttpServletResponse response) {
		HttpSession sessao =  request.getSession();
		try{
		if(request.getParameter("modoDeConsulta").equals("porID")){
			System.out.println("por id");
			
			int meuID = (Integer) sessao.getAttribute("IDENTIFICACAO");
			sessao.setAttribute("ClienteSessao", consulta(meuID));
			response.sendRedirect("Perfil.jsp");
		}
		List<Clientes> clientes = consulta();
		
		sessao.setAttribute("ListaClientes", clientes);
		
			response.sendRedirect("Administrador.jsp?");
		}catch(IOException e){
			e.printStackTrace();
		}
		
	}
	/*public static void main(String[] args) {
		ConsultaCliente cc = new ConsultaCliente();
		List<Clientes>  clientes;
		clientes = cc.consulta();
		
		for (int i = 0; i < clientes.size(); i++) {
			System.out.println(clientes.get(i));
		}
		
	}*/

}
